ARTS NUMÉRIQUES

INTERACTIVITÉ


Actionscript > Key


par : mc

L’objet Key permet de commander à l’aide des touches du clavier une interface et des MovieClips.

Key.press

Initialement, seul la méthode « Key.press » permettait d’agir avec les touches du clavier. Il permet d’utiliser les touches alphabétiques, numériques et certaines touches particulières (espace, contrôle, delete, fleches ....) mais ne détecte pas la pression simultanée sur 2 touches.

fichier « keypress.fla » :

1. Créez un nouveau fichier flash et, dans la 1ère image de la ligne du temps, écrivez le code suivant : var lettre = « ? » ; > crée une variable dont la valeur (string) est « ? »

2. placez sur la scène une occurence d’un bouton. En le sélectionnant, écrivez dans la fenêtre Actions, le code suivant :

etc ...

3. Créez sur la scène 1 champs de texte dynamique lié à la variable « lettre »

4. Publiez et constatez que la pression d’une touche fait apparaître la lettre correspondante.

KeyDown

Actuellement, l’objet Key est recommandé pour des applications nécessitant de multiples pressions de touches ou la pression simultanée sur 2 touches (par ex. un jeu).

La méthode onKeyDown permet de déterminer qu’une touche du clavier, sans détermination, est pressée. Son utilité est donc très limitée.

Pour déterminer quelle touche est pressée, il est nécessaire de recourir au code de la touche ou à sa valeur Ascii (vous trouverez dans l’aide de Flash ce code et ces valeurs). Chaque touche a son code correspondant mais certaines n’ont pas de valeur Ascii, par contre Ascii permet de différencier les minuscules des Majuscules. Certaines touches (espace, contrôle, delete, fleches ...) peuvent être appellées par un nom, ainsi la touche « flêche haut » possède le code 38 mais peut également être appellée par Key.UP Dans vos applications, tenez compte du fait que tous les ordinateurs n’ont pas le même clavier (par ex. les portables n’ont pas de pavé numérique).

getCode() & getAscii() :

La méthode getCode() retourne le code de la dernière pressée. La méthode getAscii() retourne la valeur Ascii de la dernière pressée.

Pour connaître le code et la valeur Ascii d’une touche (voir fichier « touches.fla ») :

1. Créez un nouveau fichier flash et placez sur la scène une occurence d’un MovieClip vide. En le sélectionnant, écrivez dans la fenêtre Actions, le code suivant :

onClipEvent(keyDown) > événement de clip détectant une pression de touche

var code = Key.getCode() ; > crée une variable nommée « code » dont la valeur sera le code de la touche pressée

var ascii = Key.getAscii() ; > crée une variable nommée « ascii » dont la valeur sera la valeur Ascii de la touche pressée

2. Créez sur la scène 2 champs de textes dynamiques liés aux variables « code » et « ascii ».

3. Publiez et constatez que la pression des touches fait apparaître son code et sa valeur Ascii. Constatez les différences entre celles-ci.

Key.isDown()

Pour utiliser cette valeur dans un script, utilisez la méthode « isDown() ». Par ex. le fichier « keydown.fla » permet de faire pivoter et avancer un MovieClip dans 8 directions différentes à l’aide des touches flèches.

1. Créez un nouveau fichier flash et placez sur la scène une instance d’un MovieClip nommé « perso » dans lequel vous dessinez la forme de votre choix.

2. Dans la 1ère image de la ligne du temps, écrivez le code suivant :

perso.onEnterFrame = function() > crée une fonction vérifiée à chaque entrée d’image du MovieClip « perso »

if (Key.isDown(38) && Key.isDown(39)) > si les touches « flèche gauche » et « flèche bas » sont pressées

perso._rotation = 45 ; > « perso » pivote de 45° par rapport à sa position originelle

perso._x += 5 ; > « perso » se déplace de 5 pixels vers la droite

perso._y += -5 ; « perso » se déplace de 5 pixels vers le haut

etc ...

Placez d’abord les conditions vérifiant la pression sur 2 touches car le lecteur Flash arrête de vérifier la boucle « if/else if » dès qu’une condition est vérifiée. Si vous pressez sur deux touches et que le lecteur vérifie d’abord qu’une de ces touches est pressée, il n’ira jamais vérifier qu’une autre touche est pressée simultanément.

3. Publiez et constatez que le movieClip s’orient et avance selon la pression sur une ou deux touches « flèche ».

Téléchargez cet exercice au format PDF et les fichiers .fla ci-dessous




logo DOCUMENT 349 key.pdf PDF 46207 logo DOCUMENT 350 key.zip Zip 15096
rechercher par mot-clé

mots-clés liés à cet article

actionscript

flash

interactivité

quelques sites liés aux mots-clés de cet article


actionscript
l’explicateur
Exemples d’Actionscript.
trucsweb
ASP, Javascript, HTML, DHTML, CSS, DOM, XHTML, WML, (...)
levitated
Jared Tarbell, artiste et programmeur
codes-sources
C++, ASP, ASP.NET, PHP, Java, ColdFusion, Javascript, (...)
mediabox
Centre de formation Flash, Dreamweaver, Director.
i-do
Site de Thierry Guibert.
actionscripts.org
Tutorial et scripts Actionscript.
wiki.media-box
Wiki sur Flash, Actionscript, xhtml & css, PHP, ASP, (...)
actionscript sur wikipédia
Description de l’ActionScript sur Wikipédia.
moock
Colin Moock, artiste programmeur en Actionscript.


flash
sonoises
Voyage interactif. Point de départ : le bruit.
shockwave
Play free online games, download games, and multiplayer (...)
quesaco
Astuces développeur WEB, exemples flash, librairie (...)
macromedia
dreamweaver, flash, director ...
yamago
Jeu Flash.
devilles harem girls
Animation Flash.
absolu flash
Jeux en flash.
actionscripts.org
Tutorial et scripts Actionscript.
t45ol
Flash games.
not so simple ton
The fragile circus by Myron Campbell.


interactivité
pure data
Logiciel open-source de programmation pour la création (...)
moock
Colin Moock, artiste programmeur en Actionscript.
zapp
Andrea Zapp, artiste multimedia.
sermon
Paul Sermon, artiste multimédia.
villette numerique
Festival d’art numérique et de musique électronique.
art interactive
Art Interactive’s mission is to provide a public (...)
trustfiles
The Trustfiles is an artistic multi-media project by (...)
rokeby
David Rokeby is a sound and video installation artist (...)
cycling74
Max/msp, Jitter et autres logiciels.
imal
Centre de production multimedia.